Command line applications (such as the Powershell® cmdlets, DOS batch files or SQL command) enable a user to execute functionality from a textual command line. To perform meaningful execution, the user needs an understanding of the set of input parameters that apply and the valid range of values for each parameter
For some programming languages, it is possible to reflect on the command line application and automatically generate a user interface, thus enabling a non-command line user or a novice to execute the functionality via the automatically generated user interface, even though the original application did not include a user interface. For example, Powershell® 3.0 includes “ShowCommand” functionality that serves this purpose.
However, such existing reflection functionality is designed to be very general, so that the generated user interface widely applies to many scenarios. As a result, this “one size fits all” form of user interface generation works for simple scenarios, but is inadequate for many other scenarios.